﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class PolSoiduk2Isik : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolSoiduk2Isik {
        
        private decimal @__isikId;
        
        private string @__seos;
        
        private string @__eesnimi;
        
        private string @__nimi;
        
        private string @__kood;
        
        private string @__synniaeg;
        
        private string @__synniriik;
        
        private string @__telefon;
        
        private string @__elukoht;
        
        private bool @__juhtimisoigusKehtib;
        
        private PolSoiduk2Isik.IJuhiloadType @__juhiload;
        
        private PolSoiduk2Isik.IJuhtimisoigusedType @__juhtimisoigused;
        
        private PolSoiduk2Isik.IJuhtimisoiguseKategooriadType @__juhtimisoiguseKategooriad;
        
        public PolSoiduk2Isik() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public PolSoiduk2Isik(decimal @isikId, string @seos, string @eesnimi, string @nimi, string @kood, string @synniaeg, string @synniriik, string @telefon, string @elukoht, bool @juhtimisoigusKehtib, PolSoiduk2Isik.IJuhiloadType @juhiload, PolSoiduk2Isik.IJuhtimisoigusedType @juhtimisoigused, PolSoiduk2Isik.IJuhtimisoiguseKategooriadType @juhtimisoiguseKategooriad) {
            this.@__isikId = @isikId;
            this.@__seos = @seos;
            this.@__eesnimi = @eesnimi;
            this.@__nimi = @nimi;
            this.@__kood = @kood;
            this.@__synniaeg = @synniaeg;
            this.@__synniriik = @synniriik;
            this.@__telefon = @telefon;
            this.@__elukoht = @elukoht;
            this.@__juhtimisoigusKehtib = @juhtimisoigusKehtib;
            this.@__juhiload = @juhiload;
            this.@__juhtimisoigused = @juhtimisoigused;
            this.@__juhtimisoiguseKategooriad = @juhtimisoiguseKategooriad;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected PolSoiduk2Isik(IPolSoiduk2Isik @polSoiduk2Isik) {
            this.@__isikId = @polSoiduk2Isik.IsikId;
            this.@__seos = @polSoiduk2Isik.Seos;
            this.@__eesnimi = @polSoiduk2Isik.Eesnimi;
            this.@__nimi = @polSoiduk2Isik.Nimi;
            this.@__kood = @polSoiduk2Isik.Kood;
            this.@__synniaeg = @polSoiduk2Isik.Synniaeg;
            this.@__synniriik = @polSoiduk2Isik.Synniriik;
            this.@__telefon = @polSoiduk2Isik.Telefon;
            this.@__elukoht = @polSoiduk2Isik.Elukoht;
            this.@__juhtimisoigusKehtib = @polSoiduk2Isik.JuhtimisoigusKehtib;
            this.@__juhiload = @polSoiduk2Isik.Juhiload;
            this.@__juhtimisoigused = @polSoiduk2Isik.Juhtimisoigused;
            this.@__juhtimisoiguseKategooriad = @polSoiduk2Isik.JuhtimisoiguseKategooriad;
        }
        
        public virtual decimal IsikId {
            get {
                return this.@__isikId;
            }
            set {
                this.@__isikId = value;
            }
        }
        
        public virtual string Seos {
            get {
                return this.@__seos;
            }
            set {
                this.@__seos = value;
            }
        }
        
        public virtual string Eesnimi {
            get {
                return this.@__eesnimi;
            }
            set {
                this.@__eesnimi = value;
            }
        }
        
        public virtual string Nimi {
            get {
                return this.@__nimi;
            }
            set {
                this.@__nimi = value;
            }
        }
        
        public virtual string Kood {
            get {
                return this.@__kood;
            }
            set {
                this.@__kood = value;
            }
        }
        
        public virtual string Synniaeg {
            get {
                return this.@__synniaeg;
            }
            set {
                this.@__synniaeg = value;
            }
        }
        
        public virtual string Synniriik {
            get {
                return this.@__synniriik;
            }
            set {
                this.@__synniriik = value;
            }
        }
        
        public virtual string Telefon {
            get {
                return this.@__telefon;
            }
            set {
                this.@__telefon = value;
            }
        }
        
        public virtual string Elukoht {
            get {
                return this.@__elukoht;
            }
            set {
                this.@__elukoht = value;
            }
        }
        
        public virtual bool JuhtimisoigusKehtib {
            get {
                return this.@__juhtimisoigusKehtib;
            }
            set {
                this.@__juhtimisoigusKehtib = value;
            }
        }
        
        public virtual PolSoiduk2Isik.IJuhiloadType Juhiload {
            get {
                return this.@__juhiload;
            }
            set {
                this.@__juhiload = value;
            }
        }
        
        public virtual PolSoiduk2Isik.IJuhtimisoigusedType Juhtimisoigused {
            get {
                return this.@__juhtimisoigused;
            }
            set {
                this.@__juhtimisoigused = value;
            }
        }
        
        public virtual PolSoiduk2Isik.IJuhtimisoiguseKategooriadType JuhtimisoiguseKategooriad {
            get {
                return this.@__juhtimisoiguseKategooriad;
            }
            set {
                this.@__juhtimisoiguseKategooriad = value;
            }
        }
        
        public partial class JuhiloadType : IJuhiloadType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> @__juhiluba = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba>();
            
            public JuhiloadType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhiloadType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> @juhiluba) {
                this.@__juhiluba = @juhiluba;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhiloadType(IJuhiloadType @juhiloadType) {
                this.@__juhiluba = @juhiloadType.Juhiluba;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> Juhiluba {
                get {
                    return this.@__juhiluba;
                }
                set {
                    this.@__juhiluba = value;
                }
            }
        }
        
        public interface IJuhiloadType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> Juhiluba {
                get;
                set;
            }
        }
        
        public partial class JuhtimisoigusedType : IJuhtimisoigusedType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> @__juhtimisoigus = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus>();
            
            public JuhtimisoigusedType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhtimisoigusedType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> @juhtimisoigus) {
                this.@__juhtimisoigus = @juhtimisoigus;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhtimisoigusedType(IJuhtimisoigusedType @juhtimisoigusedType) {
                this.@__juhtimisoigus = @juhtimisoigusedType.Juhtimisoigus;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> Juhtimisoigus {
                get {
                    return this.@__juhtimisoigus;
                }
                set {
                    this.@__juhtimisoigus = value;
                }
            }
        }
        
        public interface IJuhtimisoigusedType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> Juhtimisoigus {
                get;
                set;
            }
        }
        
        public partial class JuhtimisoiguseKategooriadType : IJuhtimisoiguseKategooriadType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> @__juhtimisoiguseKategooria = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria>();
            
            public JuhtimisoiguseKategooriadType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhtimisoiguseKategooriadType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> @juhtimisoiguseKategooria) {
                this.@__juhtimisoiguseKategooria = @juhtimisoiguseKategooria;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhtimisoiguseKategooriadType(IJuhtimisoiguseKategooriadType @juhtimisoiguseKategooriadType) {
                this.@__juhtimisoiguseKategooria = @juhtimisoiguseKategooriadType.JuhtimisoiguseKategooria;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> JuhtimisoiguseKategooria {
                get {
                    return this.@__juhtimisoiguseKategooria;
                }
                set {
                    this.@__juhtimisoiguseKategooria = value;
                }
            }
        }
        
        public interface IJuhtimisoiguseKategooriadType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> JuhtimisoiguseKategooria {
                get;
                set;
            }
        }
    }
}
